<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: 流年 <liu21st@gmail.com>
// +----------------------------------------------------------------------
 use Sms\Request\V20160927 as Sms;

// 应用公共文件

/**
 * 模拟tab产生空格
 * @param int $step
 * @param string $string
 * @param int $size
 * @return string
 */
function tab($step = 1, $string = ' ', $size = 4)
{
    return str_repeat($string, $size * $step);
}
/**
*图片路径处理方法
*imghandle
*@param string $img  图片路径  如：20171210/qwrjdf1321fjdsl.png
*@param string $type 图片类别  如：sx_
*return string 处理后的结果
*2017.12.18
*BY HF
*/
function imghandle($img,$type){
	if($img){
		$arr=explode('/', $img);
        if(!isset($arr[1])){
           $arr=explode('\\', $img); 
        }                
		$arr[1]=$type.$arr[1];
		$str=$arr[0].'/'.$arr[1];
		return $str;
	}else{
		return '';
	}
}
// function sms($tel,$tCode){
//         include_once VENDOR_PATH.'sms/aliyun-php-sdk-core/Config.php';
//         $code=mt_rand(1234,9999);
//         $iClientProfile = DefaultProfile::getProfile("cn-hangzhou", "LTAI3TfirDUCwuG7", "14q2hQcAr5sAc0S07l570SyC2Pgrvv");
//         $client = new DefaultAcsClient($iClientProfile);
//         $request = new Sms\SingleSendSmsRequest();
//         $request->setSignName('货通天下');/*签名名称*/
//         $request->setTemplateCode($tCode);/*模板code*/
//         $request->setRecNum($tel);/*目标手机号*/
//         $request->setParamString("{\"code\":\"$code\",\"product\":\"货通天下\"}");/*模板变量，数字一定要转换为字符串*/
//         try {
//             $response = $client->getAcsResponse($request);
//             return $code;
//         }
//         catch (ClientException  $e) {
//             return false;
//         }
//         catch (ServerException  $e) {
//             return false;
//         }
// }
/**
* 短信发送方法
* @param tel 手机号
* @param tCode  模板code
* @param sign 签名名称  
* @param type 短信方式  目前有两种： order | verify
* @param orderNum 订单号
*/
function sms($tel,$tCode,$sign,$type,$orderNum=0){
     include_once VENDOR_PATH.'sms/aliyun-php-sdk-core/Config.php';
    
     $iClientProfile = DefaultProfile::getProfile("cn-hangzhou", "LTAI3TfirDUCwuG7", "14q2hQcAr5sAc0S07l570SyC2Pgrvv");
     $client = new DefaultAcsClient($iClientProfile);
     $request = new Sms\SingleSendSmsRequest();
     $request->setSignName($sign);/*签名名称*/
     $request->setTemplateCode($tCode);/*模板code*/
     $request->setRecNum($tel);/*目标手机号*/

     switch ($type) {
         case 'verify':
            $code=mt_rand(1234,9999);
            $request->setParamString("{\"code\":\"$code\",\"product\":\"货通天下\"}");/*模板变量，数字一定要转换为字符串*/
             break;
         case 'order':
            $request->setParamString("{\"orderNum\":\"$orderNum\"}");/*模板变量，数字一定要转换为字符串*/
             break;
     }

     try {
         $response = $client->getAcsResponse($request);
         return true;
     }
     catch (ClientException  $e) {
         return $e;
     }
     catch (ServerException  $e) {
         return $e;
     }
}
/*
*生成随机数函数
*2017.12.23
*BY HF
*/
function make_rand($length){
    $chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 
    'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's', 
    't', 'u', 'v', 'w', 'x', 'y','z', 'A', 'B', 'C', 'D', 
    'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O', 
    'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z', 
    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'); 
      
    // 在 $chars 中随机取 $length 个数组元素键名 
    $keys = array_rand($chars, $length); 
    $password =''; 
    for($i = 0; $i < $length; $i++) 
    { 
    // 将 $length 个数组元素连接成字符串 
    $password .= $chars[$keys[$i]]; 
    } 
    return $password; 
}
/**
*获得用户在redis中存储的位置
*get_location
*@param id 用户ID
*return null|string
*2017.12.27
*BY HF
*/
function get_location($id){
    $redis = new \redis();
    $redis->connect('127.0.0.1',6379);
    $location=$redis->get($id);
    if($location){
        return $location;
    }else{
        return null;
    }
}
/**
*根据身份证号码计算年龄
*getAgeByID
*@param idcard  身份证号码
*return ''|int
*2017.12.27
*BY HF
*/
function getAgeByID($idcard){ 
    //过了这年的生日才算多了1周岁 
    if(empty($idcard)) return ''; 
    $date=strtotime(substr($idcard,6,8));
    //获得出生年月日的时间戳 
    $today=strtotime('today');
    //获得今日的时间戳 
    $diff=floor(($today-$date)/86400/365);
    //得到两个日期相差的大体年数 
    //strtotime加上这个年数后得到那日的时间戳后与今日的时间戳相比 
    $age=strtotime(substr($idcard,6,8).' +'.$diff.'years')>$today?($diff+1):$diff; 
    return $age; 
} 
/*
*字数截取并加省略号...
*intercept
*@param string 需要截取的字符串
*2017.12.25
*BY HF
*/
function intercept($string,$length){

    if(mb_strlen($string,'UTF-8')>$length){
        $str=mb_substr($string,0,$length,'utf8').'...';
        return $str; 
    }
    return $string;
  
}
/**
* 电话号码处理
* tel_hide
* @param tel 需要处理的手机号
* @param args 0|1   
* 0 隐藏  1显示
* 2019.01.05
* BY HF
*/
function tel_hide($tel,$args=0){
    if($args){
        return $tel;
    }else{
        return substr_replace($tel,'**',-2);
    }
}
/**
* 匹配内容详情中的电话号码，并且后两位替换为**
* @param content 
* @param args 0|1
* 0 隐藏  1显示
* 2019.01.05
* BY HF
*/
function content_handle($content,$args=0){
    $pattern ='/(1[3|4|5|7|8][\d]{9}|0[\d]{2,3}-[\d]{7,8}|400[-]?[\d]{3}[-]?[\d]{4})/'; 
    $a=preg_match_all($pattern,$content, $matches);
    if($a && $args==0){
        for($i= 0;$i<$a;$i++){
            //手机号全部替换
            $temp = $matches[0][$i];
            $str=substr_replace($temp,'**',-2);
            $content=str_replace($temp,$str, $content);
        }
    }
    return $content;
}
